Clumsy C++ Graphics Libraries for Windows(TM) The Clumsy C++ Graphics Libraries provide an object-oriented approach to performing graphics in MS Windows 3.1(TM). The classes support all Windows graphics capabilities with much improvement. All graphic objects (lines, rectangles, ellipses, etc.) have been encapsulated in classes and manipulation methods (transformation, scaling, rotation, shading, etc.) added to them. Objects to be displayed in a window are added to a coordinate system, and the window is assigned that coordinate system. The window is the view of the given space. The viewpoint, angle of view, and scaling of the view can be changed. Multiple views can be created for a given space, each with its different viewpoint, view angle, and scaling. Thus, the same space can be viewed from different positions, different angles, and with different scaling simply by creating a new window for that space with different parameters. Not only do the classes provide a wide range of functions, but they also shield the programmer from the complexities of the Windows API. The programmer no longer has to worry about creating window classes, registering them, handling the different event messages for the windows, creating pens and brushes for drawing, setting view coordinates, etc. All these are handled automatically by the different objects. To draw a rectangle on the screen, the programmer simply has to type 2 lines: the declaration of the rectangle object, and adding the rectangle to the required space. The rectangle will be drawn automatically. The pen and brush and other settings will be done implicitly by the rectangle object whenever its Draw method is created. The programmer does not have to worry about redrawing the rectangle whenever the window is moved or resized. The rectangle will be redrawn automatically when the window is repainted, or, in case buffering is enabled, the window will be painted with a buffered bitmap that contains the image that is supposed to be on the screen; this feature is important when drawing complex 3D objects since redrawing them will take considerable time. All graphic objects are derived from class VisualObject which contains virtual functions for manipulating individual graphic objects (transformation, scaling, rotation, shading, hidden-surface removal, etc.). Each object is independent of others and of Windows. The only instance when an object interacts with Windows is in its Draw method which is supplied with the Windows device context on which the object should be drawn. All classes are reusable and new classes can be derived from them easily. ComplexGraphic is derived from VisualObject and contains a list of other VisualObject objects. This allows dealing with a bunch of graphic objects as a single object. All libraries come with standard classes for encapsulating basic and essential Windows functionality such as event handling and window management. The following is a general description of the available libraries: 2D Graphics Library ------------------- C++ classes for defining, displaying, and manipulating graphics in a two-dimensional coordinate system. Graphic objects include all the graphics available in Windows (lines, rectangles, ellipses, pies, arcs, etc.), text, bitmaps, and others. All objects can be transformed, scaled, or rotated. Complex objects consisting of one or more graphic objects can be defined and treated as a single graphic object. Multiple views in separate windows can be defined on the same space of graphic objects with different view points, view angles, or scaling parameters. 2D Graphics Kit --------------- Graphics editor that allows the user to interactively create graphic objects supported in the 2D Graphic Library and either save them as a data file that can be loaded by a C++ program or generate the complete C++ code that would display the created objects. Requires the 2D Graphics Library. 3D Graphics Library ------------------- C++ classes for defining, displaying, and manipulating graphics in a three-dimensional coordinate system. Includes all the capabilities of the 2D Graphics Library applied to 3D graphic objects with several other capabilities that apply only to 3D objects such as hidden surface removal, shading, and ray tracing. 3D Graphics Kit --------------- Graphics editor that allows the user to interactively create graphic objects supported in the 3D Graphic Library and either save them as a data file that can be loaded by a C++ program or generate the complete C++ code that would display the created objects. Requires the 3D Graphics Library. Animation Library ----------------- C++ classes that define multiple-image sprites and motion to graphic objects. Animation Kit ------------- Graphics editor that allows the user to interactively create sprites and either save them as a data file that can be loaded by a C++ program or generate the complete C++ code that would display the created objects. Requires the Animation Library. Windows Library --------------- C++ classes that encapsulate a large subset of the Windows API. Although most C++ compilers include their own libraries, this library uses the same classes as the ones used in the previous libraries, and, thus, provides a consistent programming environment. Windows is a trademark of Microsoft Corporation. Ordering Information: -------------------- The libraries are available for the Borland C++ compiler. The cost of each library is as follows: Library .LIB .EXE Source Code ----------------------------------------------------- 2D Graphics Library $30 $75 2D Graphics Kit $40 $20 $100 3D Graphics Library $50 $250 3D Graphics Kit $50 $20 $150 Animation Library $40 $150 Animation Kit $50 $20 $150 Windows Library $100 $150 To order, send request with certified check or money order for the correct amount to: Clumsy Computing P.O.Box 5181 Station B Montreal, Quebec CANADA H3B 4B5